package src.A_JavaBase;

import java.math.BigDecimal;
import java.math.BigInteger;

// BigInteger类 和 BigDecimal类
public class Oop_07BigDecimal {
    public static void main(String[] args) {
        /*
         BigInteger类
         BigInteger类型的数字范围较Integer，Long类型的数字范围要大得多
         它支持任意精度的整数，也就是说在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息
         基本运算方法 ：add()加，subtract()减，multiply()乘，divide()除
        */
        BigInteger a1 =  new BigInteger("92233720368547758079223372036854775807922337203685477580792233721111111");
        BigInteger b1 =  new BigInteger("11111111111111111111111111111111111111111111111111111111111111111111111");
        BigInteger c1  =  a1.multiply(b1);
        System.out.println(a1);
        System.out.println(b1);
        System.out.println(c1);

        /*
         BigDecimal类
         主要解决浮点数精度丢失问题，前面写二进制的时候介绍过，这里直接上方法
         基本运算方法 ：add()加，subtract()减，multiply()乘，divide()除
        */
        BigDecimal a2 = new BigDecimal("1.0");
        BigDecimal b2 = new BigDecimal("0.9");
        BigDecimal c2 = a2.subtract(b2);
        System.out.println(c2); // 0.1
    }
}
